This relates to graphics processing and, particularly, to rendering motion blur and depth of field.
Correct rendering of distributed effects such as motion blur and depth of field in interactive graphics will be a major leap towards increased realism and visual fidelity. Most applications currently make the assumptions that the scene is seen through a pinhole camera with a shutter that is open for an infinitesimally short amount of time, and rely on post-processing to create the desired blur. Although several rasterization algorithms that stochastically sample (i.e., sample at non-uniformly spaced locations) in time and over the lens have been proposed, they all suffer from unpredictable performance and poor scaling with increased blur. By sacrificing the stochastic property and discretizing time and lens coordinates using accumulation buffering or interleaved sampling, a constant cost can be achieved, but this may introduce so called strobing artifacts.
In real-time graphics there is a prevailing trend towards using smaller primitives. This was emphasized with the introduction of tessellation in DirectX 11, which made it possible to generate a large amount of geometry on chip. However, smaller primitives put a high pressure on the rasterizer, and make shading less efficient due to the constraint of shading on 2×2 quads (in order to support finite differences). The problem is reinforced with accumulation buffering or interleaved sampling, as these techniques can be seen as rendering each primitive multiple times, but in lower resolution (i.e., more sparsely sampled). Also, the amount of blur introduced by motion and/or depth of field is independent of the geometric detail of the scene. Hence, stochastic rasterization of small primitives is exceedingly expensive, as the screen-space region that needs to be traversed for each blurred primitive is very large compared to the size of the primitive. A large amount of work is performed that does not result in visible samples.